/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.unifei.portal.modelo;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

/**
 *
 * @author Cristiano Affá
 */
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "tipoRegistro", discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue(value = "Registro")
public class Registro {

    @Id
    @GeneratedValue
    private int id;
    private Calendar dataCadastro;
    @OneToOne
    private Curso curso;
    @ManyToOne
    private Aluno aluno;
    @OneToMany
    private List<Atividade> atividades = new ArrayList<Atividade>();

    public boolean addAtividade(Atividade v) {
        return atividades.add(v);
    }

    public int sizeOfAtividade() {
        return atividades.size();
    }

    public Iterator<Atividade> iteratorAtividade() {
        return atividades.iterator();
    }

    public Atividade removeAtividade(int idx) {
        return atividades.remove(idx);
    }

    public Aluno getAluno() {
        return aluno;
    }

    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }

    public Curso getCurso() {
        return curso;
    }

    public void setCurso(Curso curso) {
        this.curso = curso;
    }

    public Calendar getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Calendar dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}
